﻿using DFGK_WMS.Model.DTO;
using DFGK_WMS.Model.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DFGK_WMS.IRepository
{
    public interface IPDAEmptyTrayRepository:IBaseRepository<TPallet>
    {

        /// <summary>
        /// 查看数据是否满足条件(入库)
        /// </summary>
        /// <param name="pallet"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        bool CreateStackingStorage(string PalletBarcode, out string msg);

        /// <summary>
        /// 添加入库单
        /// </summary>
        /// <param name="PalletBarcode"></param>
        /// <returns></returns>
        bool AddEmptyTrayReceivingOrder(string PalletBarcode,string WarehouseCode, out string msg);

        /// <summary>
        /// 空托盘出入（入库）
        /// </summary>
        /// <param name="PalletBarcode"></param>
        /// <returns></returns>
        bool UpdEmptyTrayStatus(PDAEmptyTrayDto dto,out string msg);

        /// <summary>
        /// 查看数据是否满足条件(出库)
        /// </summary>
        /// <param name="PalletBarcode"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        bool CreateStackingStorageOut(string PalletBarcode, out string msg);

        /// <summary>
        /// 添加出库单
        /// </summary>
        /// <param name="PalletBarcode"></param>
        /// <param name="WarehouseCode"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        string AddEmptyTrayShippingOrder(string PalletBarcode, string WarehouseCode, out string msg);

        /// <summary>
        /// 空托盘出入(出库)
        /// </summary>
        /// <param name="PalletBarcode"></param>
        /// <param name="WarehouseCode"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        bool UpdEmptyTrayStatusOut(string PalletBarcode, string WarehouseCode, out string msg);

        /// <summary>
        /// 获取所有库房
        /// </summary>
        /// <returns></returns>
        List<TWarehouse> GetAllWarehouse();
    }
}
